home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWA-UL21.ZIP / UP.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1993-10-29  |  10KB  |  680 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 1.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Integer  INTEGER001
  27.     Integer  INTEGER002
  28.     Integer  INTEGER003
  29.     Integer  INTEGER004
  30.     Integer  INTEGER005
  31.     Integer  INTEGER006
  32.     Integer  INTEGER007
  33.     Integer  INTEGER008
  34.     Integer  INTEGER009
  35.     Integer  INTEGER010
  36.     Integer  INTEGER011
  37.     Integer  INTEGER012
  38.     Integer  INTEGER013
  39.     Integer  INTEGER014
  40.     String   STRING001
  41.     String   STRING002
  42.     String   STRING003
  43.     String   TSTRING004(7)
  44.     String   STRING005
  45.     String   STRING006
  46.     String   TSTRING007(100)
  47.     String   TSTRING008(100)
  48.     String   STRING009
  49.     String   STRING010
  50.     String   STRING011
  51.     String   STRING012
  52.     String   STRING013
  53.     String   STRING014
  54.     String   STRING015
  55.     String   STRING016
  56.  
  57. ;------------------------------------------------------------------------------
  58.  
  59.     INTEGER012 = 1
  60.     INTEGER010 = 1
  61.     BOOLEAN006 = 0
  62.     INTEGER007 = PcbNode()
  63.     STRING012 = "                                       "
  64.     STRING005 = "                                       "
  65.     TSTRING004(4) = "                                  "
  66.     BOOLEAN004 = 0
  67.     INTEGER005 = 0
  68.     INTEGER006 = 3
  69.     STRING002 = ReadLine(PCBDat(), 198)
  70.     FOpen 1, PPEPath() + "UP.CFG", 0, 0
  71.     FGet 1, STRING001
  72.     FGet 1, TSTRING004(1)
  73.     FGet 1, TSTRING004(2)
  74.     FGet 1, TSTRING004(3)
  75.     FGet 1, TSTRING004(5)
  76.     FGet 1, TSTRING004(6)
  77.     FGet 1, TSTRING004(7)
  78.     FGet 1, STRING006
  79.     FGet 1, STRING003
  80.     FClose 1
  81.     If (Exist(PPEPath() + "UPLD." + I2S(INTEGER007, 10))) Then
  82.         Delete PPEPath() + "UPLD." + I2S(INTEGER007, 10)
  83.     Endif
  84.     BOOLEAN001 = 0
  85.     INTEGER001 = 0
  86.     While (BOOLEAN001 == 0) Do
  87.         Inc INTEGER001
  88.         If (Exist(PPEPath() + I2S(INTEGER001, 10) + "." + I2S(INTEGER007, 10))) Then
  89.             Delete PPEPath() + I2S(INTEGER001, 10) + "." + I2S(INTEGER007, 10)
  90.             Continue
  91.         Endif
  92.         BOOLEAN001 = 1
  93.     EndWhile
  94.     Cls
  95.     StartDisp 1
  96.     BOOLEAN003 = 0
  97.     DispFile PPEPath() + "UP.ANS", 1
  98.     AnsiPos 71, 18
  99.     Print "@X0BFull"
  100.     AnsiPos 71, 19
  101.     Print "@X0BScreen"
  102.     AnsiPos 71, 20
  103.     Print "@X0BUpload"
  104.     AnsiPos 71, 21
  105.     Print "@X0B   v2.1"
  106.     AnsiPos 71, 22
  107.     Print " @X08L@X07F@X0E[@X08P@X07W@X0FA@X0E]"
  108.     :LABEL001
  109.     Inc INTEGER005
  110.     :LABEL002
  111.     AnsiPos 8, 21
  112.     Print TSTRING004(4)
  113.     AnsiPos 8, 21
  114.     Print TSTRING004(1)
  115.     AnsiPos 5, 5
  116.     Print TSTRING004(4)
  117.     AnsiPos 15, 3
  118.     Print "            "
  119.     AnsiPos 15, 3
  120.     TSTRING007(INTEGER005) = ""
  121.     InputStr "_", TSTRING007(INTEGER005), 8, 12, Mask_Ascii(), 4096
  122.     If (Lower(TSTRING007(INTEGER005)) == "edit") Then
  123.         If (INTEGER005 == 1) Then
  124.             INTEGER005 = INTEGER005 - 1
  125.             If (INTEGER005 == 0) BOOLEAN003 = 0
  126.             Goto LABEL001
  127.         Endif
  128.         INTEGER005 = INTEGER005 - 1
  129.         If (INTEGER005 == 0) BOOLEAN003 = 0
  130.         Gosub LABEL015
  131.         Goto LABEL001
  132.     Endif
  133.     INTEGER002 = Len(TSTRING007(INTEGER005))
  134.     If ((INTEGER002 >= 1) && (INTEGER002 <= 12)) Then
  135.         If ((((((InStr(TSTRING007(INTEGER005), " ") || InStr(TSTRING007(INTEGER005), ",")) || InStr(TSTRING007(INTEGER005), ":")) || InStr(TSTRING007(INTEGER005), "\")) || InStr(TSTRING007(INTEGER005), "*")) || InStr(TSTRING007(INTEGER005), "<")) || InStr(TSTRING007(INTEGER005), ">")) Goto LABEL003
  136.         INTEGER003 = InStr(TSTRING007(INTEGER005), ".")
  137.         If (Left(TSTRING007(INTEGER005), 1) <> ".") Then
  138.             If (((INTEGER003 == 0) && (INTEGER002 <= 8)) || (INTEGER002 - INTEGER003 <= 3)) Then
  139.             Else
  140.             Endif
  141.             :LABEL003
  142.         ElseIf ((BOOLEAN003 == 1) && (INTEGER002 == 0)) Then
  143.             Goto LABEL013
  144.         ElseIf (INTEGER002 == 0) Then
  145.             FClose 2
  146.             Cls
  147.             End
  148.         Else
  149.             INTEGER005 = INTEGER005 - 1
  150.             Goto LABEL001
  151.         Endif
  152.     Endif
  153.     AnsiPos 8, 21
  154.     Print STRING005
  155.     AnsiPos 8, 21
  156.     Print TSTRING004(2)
  157.     FOpen 1, STRING001, 0, 0
  158.     Frewind 1
  159.     BOOLEAN005 = 0
  160.     BOOLEAN001 = 0
  161.     While (BOOLEAN001 == 0) Do
  162.         FGet 1, STRING009
  163.         If (Exist(STRING009 + TSTRING007(INTEGER005))) Then
  164.             BOOLEAN005 = 1
  165.             BOOLEAN001 = 1
  166.         Endif
  167.         If (Ferr(1)) BOOLEAN001 = 1
  168.     EndWhile
  169.     If (BOOLEAN005 == 1) Then
  170.         AnsiPos 5, 5
  171.         Print TSTRING004(4)
  172.         AnsiPos 5, 5
  173.         Print TSTRING004(5)
  174.         For INTEGER014 = 1 To 650
  175.         Next
  176.         If (CurSec() >= SysopSec()) Then
  177.             AnsiPos 5, 5
  178.             Print TSTRING004(5)
  179.             AnsiPos 5, 5
  180.             Print STRING006
  181.             :LABEL004
  182.             STRING010 = Inkey()
  183.             If (Lower(STRING010) == "y") Then
  184.                 BOOLEAN004 = 1
  185.                 AnsiPos 5, 5
  186.                 Print STRING005
  187.                 FClose 1
  188.                 Goto LABEL007
  189.                 Goto LABEL005
  190.             Endif
  191.             If (Lower(STRING010) == "n") Then
  192.                 AnsiPos 5, 5
  193.                 Print STRING005
  194.                 FClose 1
  195.                 INTEGER005 = INTEGER005 - 1
  196.                 If (INTEGER005 == 0) BOOLEAN003 = 0
  197.                 Goto LABEL001
  198.             Endif
  199.             :LABEL005
  200.             FClose 1
  201.             Goto LABEL004
  202.             Goto LABEL006
  203.         Endif
  204.         FClose 1
  205.         Goto LABEL002
  206.     Endif
  207.     :LABEL006
  208.     FClose 1
  209.     :LABEL007
  210.     AnsiPos 8, 21
  211.     Print TSTRING004(4)
  212.     AnsiPos 8, 21
  213.     Print TSTRING004(3)
  214.     INTEGER006 = INTEGER006 + 1
  215.     If (INTEGER006 == 22) Then
  216.         BOOLEAN006 = 1
  217.         INTEGER010 = INTEGER010 + 1
  218.         INTEGER012 = INTEGER012 + 1
  219.         For INTEGER004 = 4 To 21
  220.             AnsiPos 52, INTEGER004
  221.             Print "@X07            "
  222.         Next
  223.         INTEGER006 = 4
  224.     Endif
  225.     AnsiPos 52, INTEGER006
  226.     Print "@X07" + Upper(TSTRING007(INTEGER005))
  227.     FCreate 2, PPEPath() + I2S(INTEGER005, 10) + "." + I2S(INTEGER007, 10), 2, 0
  228.     AnsiPos 5, 5
  229.     Print STRING003
  230.     :LABEL008
  231.     STRING010 = Inkey()
  232.     Select Case (Lower(STRING010))
  233.         Case "y"
  234.             FPutLn 2, TSTRING007(INTEGER005)
  235.             If (BOOLEAN004 == 1) FPutLn 2, "Y"
  236.             FPutLn 2, "∞ Description in FILE_ID.DIZ ∞"
  237.             FPutLn 2
  238.             FPutLn 2
  239.             FClose 2
  240.             AnsiPos 5, 5
  241.             Print TSTRING004(4)
  242.             Goto LABEL011
  243.         Case "n"
  244.             AnsiPos 5, 5
  245.             Print TSTRING004(4)
  246.             Goto LABEL009
  247.     End Select
  248.     Goto LABEL008
  249.     :LABEL009
  250.     BOOLEAN002 = 0
  251.     INTEGER011 = -1
  252.     INTEGER001 = 7
  253.     INTEGER004 = 0
  254.     While (BOOLEAN002 == 0) Do
  255.         Inc INTEGER001
  256.         Inc INTEGER004
  257.         Inc INTEGER011
  258.         If (INTEGER011 == S2I(STRING002, 10)) Then
  259.             BOOLEAN002 = 1
  260.             Continue
  261.         Endif
  262.         STRING011 = ""
  263.         :LABEL010
  264.         AnsiPos 4, INTEGER001
  265.         InputStr "_", STRING011, 9, 39, Mask_Ascii(), 4096 + 512
  266.         If (((Len(STRING011) > 0) && (Len(STRING011) <= 4)) && (INTEGER004 == 1)) Then
  267.             AnsiPos 5, 5
  268.             Print TSTRING004(4)
  269.             AnsiPos 5, 5
  270.             Print TSTRING004(7)
  271.             Goto LABEL010
  272.         Endif
  273.         If (((STRING011 == "") && (INTEGER004 == 1)) && (BOOLEAN003 == 0)) Then
  274.             FClose 2
  275.             Cls
  276.             End
  277.         Endif
  278.         If ((STRING011 == "") && (INTEGER004 == 1)) Goto LABEL012
  279.         If (STRING011 == "") BOOLEAN002 = 1
  280.         If (INTEGER001 == 17) Then
  281.             For INTEGER001 = 8 To 17
  282.                 AnsiPos 4, INTEGER001
  283.                 Print STRING012
  284.             Next
  285.             INTEGER001 = 7
  286.         Endif
  287.         If (INTEGER004 == 1) FPutLn 2, TSTRING007(INTEGER005)
  288.         If ((INTEGER004 == 1) && (BOOLEAN004 == 1)) FPutLn 2, "Y"
  289.         FPutLn 2, STRING011
  290.     EndWhile
  291.     FPutLn 2
  292.     FClose 2
  293.     :LABEL011
  294.     BOOLEAN003 = 1
  295.     :LABEL012
  296.     For INTEGER004 = 8 To 17
  297.         AnsiPos 4, INTEGER004
  298.         Print STRING005
  299.     Next
  300.     Goto LABEL001
  301.     :LABEL013
  302.     If ((INTEGER005 == 0) || (INTEGER005 < 0)) Then
  303.         Cls
  304.         End
  305.     Endif
  306.     If (Exist(PPEPath() + "1." + I2S(PcbNode(), 10))) Goto LABEL014
  307.     Cls
  308.     End
  309.     :LABEL014
  310.     Cls
  311.     FCreate 1, PPEPath() + "UPLD." + I2S(INTEGER007, 10), 2, 0
  312.     For INTEGER004 = 1 To INTEGER005 - 1
  313.         FOpen 2, PPEPath() + I2S(INTEGER004, 10) + "." + I2S(INTEGER007, 10), 0, 0
  314.         BOOLEAN001 = 0
  315.         While (BOOLEAN001 == 0) Do
  316.             FGet 2, STRING013
  317.             If (STRING013 <> "") Then
  318.                 FPutLn 1, STRING013
  319.                 Continue
  320.             Endif
  321.             If ((STRING013 == "") && (INTEGER004 <> INTEGER005 - 1)) Then
  322.                 FPutLn 1
  323.                 BOOLEAN001 = 1
  324.                 Continue
  325.             Endif
  326.             FPutLn 1
  327.             FPutLn 1
  328.             BOOLEAN001 = 1
  329.         EndWhile
  330.         FClose 2
  331.     Next
  332.     FClose 1
  333.     KbdStuff "UB" + Chr(13)
  334.     KbdFile PPEPath() + "UPLD." + I2S(INTEGER007, 10)
  335.     End
  336.     :LABEL015
  337.     AnsiPos 8, 21
  338.     Print TSTRING004(4)
  339.     AnsiPos 8, 21
  340.     Print TSTRING004(6)
  341.     INTEGER008 = 3 + INTEGER005 - (INTEGER010 - 1) * 18
  342.     AnsiPos 52, INTEGER008
  343.     Goto LABEL020
  344.     :LABEL016
  345.     BOOLEAN007 = 0
  346.     INTEGER001 = 0
  347.     While (BOOLEAN007 == 0) Do
  348.         Inc INTEGER001
  349.         If (INTEGER005 - 18 * INTEGER001 < 0) Then
  350.             INTEGER012 = INTEGER001
  351.             If (INTEGER012 == 1) BOOLEAN006 = 0
  352.             INTEGER006 = 3 + INTEGER005 - (INTEGER012 - 1) * 18
  353.             BOOLEAN007 = 1
  354.         Endif
  355.     EndWhile
  356.     STRING014 = Inkey()
  357.     If (STRING014 <> "") Then
  358.         Select Case (Lower(STRING014))
  359.             Case "x"
  360.                 Gosub LABEL019
  361.                 INTEGER010 = INTEGER012
  362.                 Gosub LABEL026
  363.                 Return
  364.             Case "."
  365.                 Gosub LABEL019
  366.                 Cls
  367.                 End
  368.             Case "e"
  369.                 INTEGER009 = INTEGER008 + (INTEGER010 - 1) * 18 - 3
  370.                 Gosub LABEL021
  371.                 AnsiPos 52, INTEGER008
  372.                 Goto LABEL016
  373.             Case "d"
  374.                 Gosub LABEL019
  375.                 INTEGER009 = INTEGER008 - 3 + (INTEGER010 - 1) * 18
  376.                 INTEGER001 = 0
  377.                 If (INTEGER005 == 1) Then
  378.                     Gosub LABEL019
  379.                     Delete PPEPath() + I2S(1, 10) + "." + I2S(INTEGER007, 10)
  380.                     AnsiPos 52, INTEGER008
  381.                     Print "@X0F            "
  382.                     INTEGER006 = 3
  383.                     INTEGER005 = 0
  384.                     Return
  385.                 Endif
  386.                 For INTEGER004 = 1 To INTEGER005
  387.                     Inc INTEGER001
  388.                     If (INTEGER004 <> INTEGER009) Then
  389.                         TSTRING008(INTEGER001) = TSTRING007(INTEGER004)
  390.                         Continue
  391.                     Endif
  392.                     INTEGER001 = INTEGER001 - 1
  393.                 Next
  394.                 For INTEGER004 = 1 To INTEGER001
  395.                     TSTRING007(INTEGER004) = TSTRING008(INTEGER004)
  396.                 Next
  397.                 Delete PPEPath() + I2S(INTEGER009, 10) + "." + I2S(INTEGER007, 10)
  398.                 For INTEGER004 = INTEGER009 + 1 To INTEGER005
  399.                     Rename PPEPath() + I2S(INTEGER004, 10) + "." + I2S(INTEGER007, 10), PPEPath() + I2S(INTEGER004 - 1, 10) + "." + I2S(INTEGER007, 10)
  400.                 Next
  401.                 If ((INTEGER008 == 4) && (INTEGER006 == 4)) Then
  402.                     INTEGER010 = INTEGER010 - 1
  403.                     INTEGER012 = INTEGER012 - 1
  404.                     INTEGER006 = 21
  405.                     INTEGER008 = 21
  406.                     Gosub LABEL026
  407.                     Goto LABEL020
  408.                 ElseIf (INTEGER005 - (INTEGER010 - 1) * 18 + INTEGER008 - 3 == 0) Then
  409.                     INTEGER008 = INTEGER008 - 1
  410.                 Endif
  411.                 INTEGER005 = INTEGER005 - 1
  412.                 If (INTEGER005 == 0) BOOLEAN003 = 0
  413.                 INTEGER006 = INTEGER006 - 1
  414.                 Gosub LABEL026
  415.                 AnsiPos 52, INTEGER008
  416.                 Goto LABEL020
  417.             Case "z", "DOWN"
  418.                 Gosub LABEL019
  419.                 INTEGER008 = INTEGER008 + 1
  420.                 If (BOOLEAN006 == 0) Then
  421.                     If (INTEGER008 == 4 + INTEGER005) Then
  422.                         INTEGER008 = 4
  423.                     Endif
  424.                     AnsiPos 52, INTEGER008
  425.                     Goto LABEL020
  426.                 ElseIf (INTEGER010 == INTEGER012) Then
  427.                     If (INTEGER008 == 4 + INTEGER005 - (INTEGER010 - 1) * 18) Then
  428.                         INTEGER010 = 1
  429.                         INTEGER008 = 4
  430.                         Gosub LABEL026
  431.                         Goto LABEL020
  432.                     Else
  433.                         AnsiPos 52, INTEGER008
  434.                         Goto LABEL020
  435.                     Endif
  436.                 ElseIf (INTEGER008 == 22) Then
  437.                     INTEGER010 = INTEGER010 + 1
  438.                     INTEGER008 = 4
  439.                     Gosub LABEL026
  440.                     Goto LABEL020
  441.                 Else
  442.                     AnsiPos 52, INTEGER008
  443.                     Goto LABEL020
  444.                 Endif
  445.             Case "a", "UP"
  446.                 Gosub LABEL019
  447.                 INTEGER008 = INTEGER008 - 1
  448.                 If (BOOLEAN006 == 0) Then
  449.                     If (INTEGER008 < 4) Then
  450.                         INTEGER008 = 3 + INTEGER005
  451.                     Endif
  452.                     AnsiPos 52, INTEGER008
  453.                     Goto LABEL020
  454.                     Goto LABEL018
  455.                 Endif
  456.                 If (INTEGER010 == 1) Then
  457.                     If (INTEGER008 < 4) Then
  458.                         INTEGER010 = INTEGER012
  459.                         INTEGER008 = 3 + INTEGER005 - (INTEGER010 - 1) * 18
  460.                         Gosub LABEL026
  461.                         Goto LABEL020
  462.                         Goto LABEL017
  463.                     Endif
  464.                     AnsiPos 52, INTEGER008
  465.                     Goto LABEL020
  466.                     :LABEL017
  467.                     Goto LABEL018
  468.                 Endif
  469.                 If (INTEGER008 < 4) Then
  470.                     INTEGER010 = INTEGER010 - 1
  471.                     INTEGER008 = 21
  472.                     Gosub LABEL026
  473.                     Goto LABEL020
  474.                     Goto LABEL018
  475.                 Endif
  476.                 AnsiPos 52, INTEGER008
  477.             Else
  478.         End Select
  479.         :LABEL018
  480.         Goto LABEL016
  481.         :LABEL019
  482.         AnsiPos 52, INTEGER008
  483.         Print STRING015
  484.         Return
  485.     Endif
  486.     :LABEL020
  487.     STRING015 = ScrText(52, INTEGER008, 12, 1)
  488.     STRING016 = RTrim(ScrText(52, INTEGER008, 12, 0), " ")
  489.     Color 112
  490.     Print STRING016
  491.     Goto LABEL016
  492.     :LABEL021
  493.     FCreate 4, PPEPath() + I2S(INTEGER009, 10) + "." + I2S(INTEGER007, 10), 2, 0
  494.     AnsiPos 5, 5
  495.     Print STRING003
  496.     :LABEL022
  497.     STRING010 = Inkey()
  498.     Select Case (Lower(STRING010))
  499.         Case "y"
  500.             FPutLn 4, TSTRING007(INTEGER009)
  501.             If (BOOLEAN004 == 1) FPutLn 4, "Y"
  502.             FPutLn 4, "∞ Description in FILE_ID.DIZ ∞"
  503.             FPutLn 4
  504.             FPutLn 4
  505.             FClose 4
  506.             AnsiPos 5, 5
  507.             Print TSTRING004(4)
  508.             Goto LABEL025
  509.         Case "n"
  510.             AnsiPos 5, 5
  511.             Print TSTRING004(4)
  512.             Goto LABEL023
  513.     End Select
  514.     Goto LABEL022
  515.     :LABEL023
  516.     BOOLEAN002 = 0
  517.     INTEGER001 = 7
  518.     INTEGER004 = 0
  519.     While (BOOLEAN002 == 0) Do
  520.         Inc INTEGER001
  521.         Inc INTEGER004
  522.         STRING011 = ""
  523.         :LABEL024
  524.         AnsiPos 4, INTEGER001
  525.         InputStr "_", STRING011, 9, 39, Mask_Ascii(), 4096 + 512
  526.         If (((Len(STRING011) > 0) && (Len(STRING011) <= 4)) && (INTEGER004 == 1)) Then
  527.             AnsiPos 5, 5
  528.             Print TSTRING004(4)
  529.             AnsiPos 5, 5
  530.             Print TSTRING004(6)
  531.             Goto LABEL024
  532.         Endif
  533.         If (STRING011 == "") BOOLEAN002 = 1
  534.         If (INTEGER001 == 17) Then
  535.             For INTEGER001 = 8 To 17
  536.                 AnsiPos 4, INTEGER001
  537.                 Print STRING012
  538.             Next
  539.             INTEGER001 = 7
  540.         Endif
  541.         If (INTEGER004 == 1) FPutLn 4, TSTRING007(INTEGER009)
  542.         FPutLn 4, STRING011
  543.     EndWhile
  544.     FPutLn 4
  545.     FClose 4
  546.     :LABEL025
  547.     BOOLEAN003 = 1
  548.     For INTEGER004 = 8 To 17
  549.         AnsiPos 4, INTEGER004
  550.         Print STRING005
  551.     Next
  552.     Return
  553.     :LABEL026
  554.     For INTEGER001 = 4 To 21
  555.         AnsiPos 52, INTEGER001
  556.         Print "@X07             "
  557.     Next
  558.     If (BOOLEAN006 == 0) Then
  559.         For INTEGER001 = 1 To INTEGER005
  560.             AnsiPos 52, INTEGER001 + 3
  561.             Print Upper(TSTRING007(INTEGER001))
  562.         Next
  563.         Return
  564.     Else
  565.         INTEGER004 = INTEGER005 - (INTEGER010 - 1) * 18
  566.         If (INTEGER004 <= 18) Then
  567.             For INTEGER001 = 1 To INTEGER004
  568.                 INTEGER013 = INTEGER001 + 3
  569.                 AnsiPos 52, INTEGER013
  570.                 Print Upper(TSTRING007((INTEGER010 - 1) * 18 + INTEGER001))
  571.             Next
  572.         Else
  573.             For INTEGER001 = 1 To 18
  574.                 INTEGER013 = INTEGER001 + 3
  575.                 AnsiPos 52, INTEGER013
  576.                 Print Upper(TSTRING007((INTEGER010 - 1) * 18 + INTEGER001))
  577.             Next
  578.         Endif
  579.         AnsiPos 52, INTEGER008
  580.         Return
  581.     Endif
  582.  
  583. ;------------------------------------------------------------------------------
  584. ;
  585. ; Usage report (before postprocessing)
  586. ;
  587. ; ■ Statements used :
  588. ;
  589. ;    6       End
  590. ;    7       Cls
  591. ;    1       Color 
  592. ;    156     Goto 
  593. ;    128     Let 
  594. ;    44      Print 
  595. ;    88      If 
  596. ;    1       DispFile 
  597. ;    3       FCreate 
  598. ;    3       FOpen 
  599. ;    14      FClose 
  600. ;    11      FGet 
  601. ;    21      FPutLn 
  602. ;    1       StartDisp 
  603. ;    4       Delete 
  604. ;    3       InputStr 
  605. ;    15      Gosub 
  606. ;    6       Return
  607. ;    9       Inc 
  608. ;    1       KbdStuff 
  609. ;    1       KbdFile 
  610. ;    56      AnsiPos 
  611. ;    1       Rename 
  612. ;    1       Frewind 
  613. ;
  614. ;
  615. ; ■ Functions used :
  616. ;
  617. ;    1       -
  618. ;    11      *
  619. ;    78      +
  620. ;    37      -
  621. ;    65      ==
  622. ;    5       <>
  623. ;    19      <
  624. ;    20      <=
  625. ;    2       >
  626. ;    30      >=
  627. ;    74      !
  628. ;    41      &&
  629. ;    24      ||
  630. ;    5       Len(
  631. ;    13      Lower()
  632. ;    4       Upper()
  633. ;    1       Left()
  634. ;    1       Ferr()
  635. ;    1       Chr()
  636. ;    8       InStr()
  637. ;    1       RTrim()
  638. ;    4       Inkey()
  639. ;    3       Mask_Ascii()
  640. ;    1       PCBDat()
  641. ;    16      PPEPath()
  642. ;    2       PcbNode()
  643. ;    1       ReadLine()
  644. ;    1       SysopSec()
  645. ;    1       CurSec()
  646. ;    4       Exist()
  647. ;    23      I2S()
  648. ;    1       S2I()
  649. ;    2       ScrText()
  650. ;
  651. ;------------------------------------------------------------------------------
  652. ;
  653. ; Analysis flags : ds
  654. ;
  655. ; d - Access PCBOARD.DAT ■ 2
  656. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  657. ;     for many PPE so they can find various informations on the system
  658. ;     (system paths, max number of lines in messages, ...) but it may also
  659. ;     be a way to gather vital informations.
  660. ;     ■ Search for : PCBDAT()
  661. ;
  662. ; s - Sysop level access ■ 5
  663. ;     Program is reading the sysop access level, this may be normal
  664. ;     but still it is very suspect. It is the best way to give a user
  665. ;     all priviledges. Check!
  666. ;     ■ Search for : SYSOPSEC()
  667. ;
  668. ;------------------------------------------------------------------------------
  669. ;
  670. ; Postprocessing report
  671. ;
  672. ;    14      For/Next
  673. ;    6       While/EndWhile
  674. ;    42      If/Then or If/Then/Else
  675. ;    3       Select Case
  676. ;
  677. ;------------------------------------------------------------------------------
  678. ;                 AEGiS Corp - Break the routines, code against the machines!
  679. ;------------------------------------------------------------------------------
  680.